cmake_minimum_required(VERSION 3.8)
set(CMAKE_CXX_STANDARD 11)
project(HElib)

set(SOURCE_FILES
        src/BenesNetwork.cpp
        src/blockMatmul.cpp
        src/blockMatmul1D.cpp
        src/bluestein.cpp
        src/bluestein.h
        src/cloned_ptr.h
        src/CModulus.cpp
        src/CModulus.h
        src/Ctxt.cpp
        src/Ctxt.h
        src/debugging.cpp
        src/DoubleCRT.cpp
        src/DoubleCRT.h
        src/EncryptedArray.cpp
        src/EncryptedArray.h
        src/eqtesting.cpp
        src/EvalMap.cpp
        src/EvalMap.h
        src/extractDigits.cpp
        src/FFT.cpp
        src/FFT.h
        src/FHE.cpp
        src/FHE.h
        src/FHEContext.cpp
        src/FHEContext.h
        src/hypercube.cpp
        src/hypercube.h
        src/IndexMap.h
        src/IndexSet.cpp
        src/IndexSet.h
        src/KeySwitching.cpp
        src/matching.cpp
        src/matching.h
        src/matmul.cpp
        src/matmul.h
        src/matmul1D.cpp
        src/multicore.h
        src/NumbTh.cpp
        src/NumbTh.h
        src/OptimizePermutations.cpp
        src/PAlgebra.cpp
        src/PAlgebra.h
        src/PermNetwork.cpp
        src/permutations.cpp
        src/permutations.h
        src/polyEval.cpp
        src/polyEval.h
        src/powerful.cpp
        src/powerful.h
        src/recryption.cpp
        src/recryption.h
        src/replicate.cpp
        src/replicate.h
        src/timing.cpp
        src/timing.h
        src/Service.h
        src/Service.cpp
        src/client.cpp
        src/client.h
        )

add_executable(hecom ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(hecom ntl gmp)

add_library(helib SHARED ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(helib ntl gmp)

